package users

// 定义一个部门、岗位、用户名关键词查询返回所需结构体
type OrgPostList struct {
	Id          int64  `json:"id"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
	UserName    string `gorm:"column:user_name" json:"user_name"`
	Phone       string `json:"phone"`
	RealName    string `gorm:"column:real_name" json:"real_name"`
	Status      int    `json:"status"`
	Remark      string `json:"remark"`
	LastLoginIp string `gorm:"column:last_login_ip" json:"last_login_ip"`
	OrgPostName string `json:"org_post_name"`
}

// 用户权限分析界面带岗位数据查询
type AnalysisiUserList struct {
	Id       int    `json:"id"`
	UserName string `gorm:"column:user_name" json:"user_name"`
	RealName string `gorm:"column:real_name" json:"real_name"`
	PostName string `json:"post_name"`
}

// 用户在指定页面已分配的按钮列表
type UserHasButtons struct {
	Id     int    `json:"id"`
	CnName string `json:"cn_name"`
	EnName string `json:"en_name"`
}

// 待缓存到 redis的有效 token数据
type TokenToRedis struct {
	Id        int    `json:"id"`
	Token     string `json:"token"`
	ExpiresAt string `json:"expires_at"`
}

// 用户完整信息（包含员工、部门、岗位信息）
type UserWithDetails struct {
	Id             int64  `json:"id"`
	UserName       string `json:"user_name"`
	RealName       string `json:"real_name"`
	Phone          string `json:"phone"`
	Avatar         string `json:"avatar"`
	Status         int    `json:"status"`
	Remark         string `json:"remark"`
	EmployeeId     int    `json:"employee_id"`
	DepartmentId   int    `json:"department_id"`
	PositionId     int    `json:"position_id"`
	EmployeeName   string `json:"employee_name"`    // 关联员工姓名
	DepartmentName string `json:"department_name"`  // 部门名称
	PositionName   string `json:"position_name"`    // 岗位名称
	CreatedAt      string `json:"created_at"`
	UpdatedAt      string `json:"updated_at"`
}

// 用户权限信息
type AuthPermission struct {
	MemberId    int    `json:"member_id"`     // 权限成员表ID
	OrgPostId   int    `json:"org_post_id"`   // 组织架构/岗位ID
	OrgPostName string `json:"org_post_name"` // 组织架构/岗位名称
	NodeType    int    `json:"node_type"`     // 节点类型：1=部门，2=角色/岗位
	Status      int    `json:"status"`        // 状态
	Remark      string `json:"remark"`        // 备注
}
